﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using ChurchDiary.TableEntity;

namespace ChurchDiary.DAL.Contract
{
    public interface IWebsite
    {
        #region Magazhine
        string InsertMagazhine(EntityMagazine magazhine);
        string UpdateMagazhine(EntityMagazine magazhine);
        string DeleteMagazhine(Guid sMagazhineid);
        EntityMagazine GetMagazhine(Guid sMagazhineid);
        List<EntityMagazine> GetMagazhines();
        List<EntityMagazine> GetMagazhinesHomePage();
        //List<Magazhine> SearchMagazhine();
        #endregion
        #region News
        string Insertnews(EntityNews news);
        string UpdateNews(EntityNews news);
        string DeleteNews(Guid Newsid);
        List<EntityNews> GetNewses();
        EntityNews GetNews(Guid Newsid);
        string InsertNewsDetails(EntityNewsDetails NewsDetails);
        string UpdateNewsDetails(EntityNewsDetails NewsDetails);
        string DeleteNewsDetails(Guid NewsDetailsId);
        EntityFullNewsInfo GetNewsInfo(Guid NewsId);
        List<EntityNewsWeb> GetNewbyNewsCategory(Guid LanugageId, Guid NewsCategoryId);
        EntityNewsDetails GetNewsDetailsbyLanguageId(Guid NewsId, Guid Languageid);
        List<EntityNewsWeb> GetNewsforWebsite();
        List<EntityNewsWeb> GetNewsforWebsite(Guid LanugageId);
        EntityFullNewsInfo GetNewsInfo(Guid NewsId, Guid LanguageId);
        #endregion
        #region News Category
        string ChangeCommentStatus(Guid CommentId, int Status);
        string InsertNewsCategory(EntityNewsCategory NewsCategory);
        string UpdateNewsCategory(EntityNewsCategory NewsCategory);
        string DeleteNewsCategory(Guid NewsCategoryid);
        List<EntityNewsCategory> GetNewsCategories();
        EntityNewsCategory GetNewsCategory(Guid NewsCategoryId);
        #endregion
        #region Event Category
        string InsertEventCategory(EntityEventCategory EventCategory);
        string UpdateEventCategory(EntityEventCategory EventCategory);
        string DeleteEventCategory(Guid EventCategoryid);
        #endregion
        #region Video Category
        string InsertVideoCategory(EntityVideoCategory VideoCategory);
        string UpdateVideoCategory(EntityVideoCategory VideoCategory);
        string DeleteVideoCategory(Guid VideoCategoryid);
        #endregion
        #region Photo Category
        string InsertPhotoCategory(EntityPhotoCategory PhotoCategory);
        string UpdatePhotoCategory(EntityPhotoCategory PhotoCategory);
        string DeletePhotoCategory(Guid PhotoCategoryid);
        #endregion
        #region Photos
        string InsertPhoto(EntityPhoto Photo);
        string UpdatePhoto(EntityPhoto Photo);
        string DeletePhoto(Guid Photoid);
        #endregion
        #region Events
        string InsertEvents(EntityEvents Events);
        string UpdateEvents(EntityEvents Events);
        string DeleteEvents(Guid EventId);
        EntityEvents GetEvent(Guid EventId);
        List<EntityEvents> GetEvents();
        string InsertEventTable(EntityEventTable EventTable);
        #endregion
        #region Subcriber
        string InsertSubcriber(EntitySubcriber Subcriber);
        string UpdateSubcriber(EntitySubcriber Subcriber);
        string DeleteSubcriber(Guid SubcriberId);
        EntitySubcriber GetSubcriber(Guid SubcriberId);
        List<EntitySubcriber> GetSubcribers();
        #endregion
        #region VideoCategory
        List<EntityVideoCategory> GetVideoCategory();
        EntityVideoCategory GetVideoCategory(Guid VideoCategoryId);
        string InsertVideo(EntityVideos Videos);
        string UpdateVideo(EntityVideos Videos);
        string DeleteVideo(string videoid);
        EntityVideos GetVideo(Guid videoid);
        List<EntityVideos> GetVideo();
        List<EntityVideos> GetVideoByCategory(Guid VideoCategoryId);
        #endregion
        #region Message
        string InsertMessage(EntityMessage Message);
        List<EntityMessage> GetMessage();
        #endregion
        #region Banner
        string InsertBanner(EntityBanner Banner);
        string UpdateBanner(EntityBanner Banner);
        string DeleteBanner(Guid BannerId);
        List<EntityBanner> GetBanner();
        EntityBanner GetBanner(Guid BannerId);
        #endregion
        #region Article
        string InsertArticle(EntityArticle Article);
        string UpdateArticle(EntityArticle Article);
        string DeleteArticle(Guid ArticleId);
        List<EntityArticle> GetArticle();
        EntityArticle GetArticle(Guid ArticleId);
        #endregion
        #region Newsletter
        string InsertNewsletter(EntityNewsletter Newsletter);
        string UpdateNewsletter(EntityNewsletter Newsletter);
        string DeleteNewsletter(Guid NewsletterId);
        List<EntityNewsletter> GetNewsletters();
        EntityNewsletter GetNewsletter(Guid NewsletterId);
        string ApproveRejectNewsletter(Guid NewsletterId, int Status);
        string SendNewsletter(Guid NewsletterId);
        #endregion
        #region Album
        string InsertAlbum(EntityAlbums Album);
        string UpdateAlbum(EntityAlbums Album);
        string DeleteAlbum(Guid AlbumId);
        List<EntityAlbums> GetAlbums(int PageNo,string SearchKey);
        EntityAlbums GetAlbum(Guid AlbumId);
        #endregion
        #region AlbumSongs
        string InsertSong(EntitySongs Song);
        string UpdateSong(EntitySongs Song);
        string DeleteSong(Guid SongId);
        List<EntitySongs> GetSongs();
        EntitySongs GetSongs(Guid SongsId);
        List<EntitySongs> GetSongsByAlbums(Guid AlbumId);
        #endregion
    }
}
